#pragma once

#include "Cadena.h"
#include "Iterador.h"
#include "Puntero.h"

#include "ICiudad.h"

class IPais abstract
{
public:
	virtual ~IPais();

	virtual Cadena ObtenerNombre() const abstract;
	virtual int CantidadCiudades() const abstract;
	virtual Puntero<Iterador<pCiudad>> Ciudades() const abstract;
	virtual pCiudad ObtenerCapital() const abstract;

	virtual bool operator==(const IPais& pais) const;
};

typedef Puntero<IPais> pPais;